Soru & Cevap

Dosyanın SdCardda Olup Olmadığını Kontrol Etme

15.03.2016 - 12:28

Es Selamu Aleykum Arkadaşlar;

Yaptığım Uygulamada Ses Dosyalarını İnternet Üzerinden Sd Card'a İndirip Media Player İle Oynatma İşlemi Yaptım. Buraya Kadar Hersey Güzel Dosyaları İndirip Oynatabiliyorum da Hiç bir Sıkıntı Yok. Ama Tek Sıkıntı İndirilmemiş Dosyaların Olduğu Activitye Girmeye Çalıştığımda "Malesef Uygulama Durdu." Hatasını Alıyorum. Hadi Onuda Anladım Dosya İndirilmedi Diye Durduruldu. Sormak İstediğim Activitiye Girmeden Önce o dosyanın indirilip indirilmediğini (((sdcard/Android/data/com.uyg.deneme/Deneme.bin))) kontrol ettirip indirilmediyse eğer de bunu kullanıcıya Alet Dialogg Yardımı ile belirtmek istiyorum. Yardımcı Olursanız Çok Makbule Geçer.. 

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import java.io.IOException;

public class Deneme extends Activity implements Runnable {
    Button playbutton, pausebutton;
    MediaPlayer mediaPlayer;
    String media_path = "sdcard/Android/data/com.uyg.deneme/Deneme.bin";
    SeekBar seekBar;
    Thread soundThread;

    @Override
    public void onBackPressed() {
        mediaPlayer.stop();
        super.onBackPressed(); }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.deneme);

        playbutton = (Button) findViewById(R.id.playbutton);
        pausebutton = (Button) findViewById(R.id.pausebutton);
        seekBar = (SeekBar) findViewById(R.id.seekBar);

        mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mediaPlayer.setDataSource(media_path);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            mediaPlayer.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
        setupListener();

        soundThread = new Thread((Runnable) this);
        soundThread.start();

    }
    private void setupListener() {

         playbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mediaPlayer.start();
                playbutton.setEnabled(false);
                pausebutton.setEnabled(true);}
        });
        pausebutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mediaPlayer.pause();
                pausebutton.setEnabled(false);
                playbutton.setEnabled(true);}
        });
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                if (fromUser){
                    mediaPlayer.seekTo(progress);}
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }


    @Override
    public void run() {
        int currentPosition = 0;
        int soundTotal = mediaPlayer.getDuration();
        seekBar.setMax(soundTotal);

        while (mediaPlayer != null && currentPosition <soundTotal){
            try {
                Thread.sleep(300);
                currentPosition = mediaPlayer.getCurrentPosition();
            } catch (InterruptedException soundException) {
                return;}
            catch (Exception otherException){
                return;
            }
            seekBar.setProgress(currentPosition);


        }
    }
}

 

3 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user Gelecegi_Yazanlar_Ekibi
Gelecegi_Yazan…
15.03.2016 - 04:28

indirilmemiş dosyaların olduğu dizini programda kontrol edip ,eğer boş ise başka işlem yaptırabilirsin,uygulama oraya girdiğinde değer bulamadığında değer dönmediği için hata verir.